This application makes reference to, incorporates the same herein, and claims all benefits accruing under 35 U.S.C. xc2xa7119 from applications for METHOD FOR IMPROVING PERFORMANCE OF READ CACHE OF MAGNETIC DISK DRIVE earlier filed in the Korean Industrial Property Office on the Oct. 28, 1996, and there duly assigned Ser. No. 49248/1996, a copy of which application is annexed hereto.
1. Technical Field
The present invention relates to a magnetic disk drive and, to a method for improving the performance of a read cache of a hard disk drive (xe2x80x9cHDDxe2x80x9d or xe2x80x9cdrivexe2x80x9d).
2. Related Art
Recent advances in microprocessors of computer systems and the user""s demand for multimedia have precipitated the need for improved performance of auxiliary memory devices. Unfortunately, most auxiliary memory devices such as hard disk drives (HDD) available today are not able to process data at sufficient speed to satisfy the advance of microprocessors and the user""s demand for multimedia. For this reason, performance improvements for input/output operations with auxiliary memory devices such as HDDs are in demand.
Contemporary efforts to increase the performance of the HDD are directed to hardware characteristics, such as improvement in the rotary speed of a spindle motor, the enlargement of a buffer random-access-mernory (RAM), improvement in the search time, etc., in addition to software characteristics such as write cache, read cache, command recording such as disclosed in U.S. Pat. No. 4,425,615 for Hierarchical Memory System Having Cache/Disk Subsystem With Command Queues For Plural Disks issued to Swenson et al., U.S. Pat. No. 5,289,581 for Disk Driver With Lockahead Cache issued to Berenguel et al., U.S. Pat. No. 5,317,713 for Micro-Winchester Disk Drive Having On-Board Segmented Cache Memory issued to Glassburn, and U.S. Pat. No. 5,410,653 for Asynchronous Read-Ahead Disk Caching Using Multiple Disk I/O Processes And Dynamically Variable Prefetch Length issued to Macon, Jr. et al. Generally, HDD uses a data transfer rate to indicate the amount of data transmitted and received per unit time as the criteria for measuring its performance. As factors which affect the data transfer rate of the HDD, there are the rotary speed of the spindle motor, the moving speed of the actuator, the size of the buffer RAM, the efficiency of a driving program of the HDD, and the like.
There are two available techniques to increase the data transfer rate of the HDD. The first technique requires that, if the disk drive as the write cache receives a write command from the host computer, the disk drive stores data transmitted from the host computer in the buffer RAM and transmits a result before writing data on the disk to the host computer as if the write command had been performed. The disk drive then writes the data transmitted from the host computer in the buffer RAM during at spare time. A write cache operation uses a data transfer rate that is higher than a general write operation. The second technique of increasing the data transfer rate of the disk drive is to reduce data read time from the disk by previously storing demanded read data in the buffer RAM after the disk drive as the read clock carries out a data read command. A read cache operation also uses a data transfer rate that is higher than a general read operation.
Conventional read cache operation requires an entire storage region of the buffer RAM to be divided into segments, each having a constant size. In order to effectively manage the buffer RAM, the entire region of the buffer RAM which contains 512 sectors is divided into one or more logical units of the constant size, each being defined as a segment. If the number of the segments is small, a large quantity of data can be stored in the corresponding segment at a time when the host computer demands to read many sequential data. A disadvantage is that, if the host computer demands to read a small quantity of data many times, all the data cannot be stored in the buffer RAM. If the number of the segments is large, however, the advantage and disadvantage are contrary to the case when the number of the segments is small. For this reason, the number of the segments of the buffer RAM must be set appropriately in order to maximize the read cache operation.
In addition, the amount of data which is read in advance depends upon whether the size of data demanded by the host computer is smaller than the size of one segment. If the size of data demanded by the host computer is smaller than the size of the segment of the buffer RAM, the read cache operation is performed and data which is read in advance exists. However, if the size of data demanded by the host computer is equal to or greater than the size of the segment of the buffer RAM, the read cache operation cannot be implemented. Such a conventional read cache operation cannot erase data stored in the corresponding segment of the buffer RAM when the host computer again demands to read the data which has been transmitted to the host computer by the read command. Moreover, most computer systems use an operating system (OS) relying on its own cache region, which is much larger than the HDD, to perform the read cache operation. Consequently, the possibility that the data demanded by the host computer is again read by the host computer is lower than the possibility that the data read-cached by the previous read command is read. That is, the host computer directly reads data read by the previous read command from its own read cache. Therefore, the conventional read cache technique for maintaining the data stored in the segment of the buffer RAM after the data is transmitted to the host computer to reduce the amount of the read cache is not useful for the improvement in the performance of the disk drive. Further, if the data read by the host computer is filled in one segment, and the read cache operation is not performed, the conventional read cache technique is not effective for the improvement in the performance of the disk drive.
Accordingly, it is therefore an object of the present invention to provide a read cache method for improving the efficiency and performance of a disk drive.
It is another object of the present invention to provide a read cache method for increasing a data transfer rate between a disk drive and a host computer.
It is still another object of the present invention to provide a read cache method for effectively using a transfer data storage region of a disk drive.
It is still yet another object of the present invention to provide a read cache method for increasing a data transfer rate between a disk drive and a host computer without additional hardware.
These and other objects of the present invention can be achieved by a method for improving the efficiency and performance of a disk cache of a disk drive which includes a data transmission process for reading corresponding data from the disk in response to a data read command of a host computer, temporarily storing the corresponding data in a constant unit storage region of a data transmission storage device, and transmitting the corresponding data to the host computer; a first read cache process for reading, from the disk, first data corresponding to the size of the unit storage region among a series of data after the corresponding data, and storing the first data in the unit storage region; and a second read cache process for reading, from the disk, second data corresponding to the size of the unit storage region among a series of data after the first data, and storing the second data in all other unit storage regions of the data transmission storage device.
The present invention is more specifically described in the following paragraphs by reference to the drawings attached only by way of example.